import Variable from '@/utils/variable.js'


// 请求拦截器
const httpInterceptor = {
    // 请求拦截
    request: (config) => {
        config.url = Variable.BaseUrl + config.url

        // 打印请求信息
        console.log('【请求】', {
            url: config.url,
            method: config.method || 'GET',
            data: config.data,
            params: config.params,
            header: config.header,
            timestamp: new Date().toLocaleString()
        })
        
        // 添加token等通用header
        config.header = {
            ...config.header,
            'Authorization': uni.getStorageSync('token')
        }
       
         
        return config
    },
    
    // 响应拦截
    response: (response) => {
        // 打印响应信息
        console.log('【响应】', {
            url: response.config.url,
            data: response.data,
            status: response.status,
            timestamp: new Date().toLocaleString()
        })
        
        // 处理响应状态
        if (response.data.code === 0) {
            return response.data
        } else if (response.data.code === 401) {
            // token过期，跳转登录页
            uni.navigateTo({
                url: '/pages/login/login'
            })
            return Promise.reject(response.data)
        } else {
            // 其他错误
            uni.$uv.toast(response.data.msg || '请求失败')
            return Promise.reject(response.data)
        }
    },
    
    // 错误处理
    error: (error) => {
        console.error('【请求错误】', {
            error: error.message || error,
            timestamp: new Date().toLocaleString()
        })
        uni.$uv.toast('网络请求失败')
        return Promise.reject(error)
    }
}

export default httpInterceptor